// 找到所有红色表格的td
var alltds = document.querySelectorAll("#board2 td");

var turn = "black";

var round = document.getElementById("round");

var his = [];

var finish = false;




// td的点击事件函数
function tdClick(e) {
     
    if(finish){
        return;
    }

    var td = e.target;
    var side = td.getAttribute("chess");
    if (side) {
        return;
    }




    td.setAttribute("chess", turn);


    winCheck(e.target.index);




    if (turn == "black") {
        turn = "white";
        round.textContent = "白方回合";

    } else {
        turn = "black";
        round.textContent = "黑方回合";
    }

     his.push(e.target);

}

   


for (var i = 0; i<alltds.length; i++) {
    alltds[i].onclick = tdClick;

    alltds[i].index = i;
}


function  back(){
    if(his.length>0){
        var td = his.pop();
        td.removeAttribute("chess");

        if (turn=="black") {
        turn = "white";
        round.textContent = "白方回合";

    } else {
        turn = "black";
        round.textContent = "黑方回合";
    }

      
    }

}

function restart(){
    window.location.reload();

}

// 判断胜利的函数
function winCheck(index){
    if(horizontalCheck(index)||verticalCheck(index)||tlbrCheck(index)|| currentIndexCheck(index)){
    finish = true;

    alert(turn+"方胜利");
}

   
}



function horizontalCheck(index){
    var num = 1;
    var currentIndex = index;
    var hasNext = currentIndex%19!=0&&alltds[currentIndex-1].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex--;
        hasNext = currentIndex%19!=18&&alltds[currentIndex-1].getAttribute("chess")==turn;
    }
   
var currentIndex = index;
    var hasNext = currentIndex%19!=18&&alltds[currentIndex+1].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex++;
        hasNext = currentIndex%19!=18&&alltds[currentIndex+1].getAttribute("chess")==turn;
    }

    return num>=5;

}


// ------------------------------------------------

function verticalCheck(index){
    var num = 1;
    var currentIndex = index;
    var hasNext = currentIndex>=19&&alltds[currentIndex-19].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=19;
       hasNext = currentIndex>=19&&alltds[currentIndex-19].getAttribute("chess")==turn;
    }
   
var currentIndex = index;
    var hasNext = currentIndex<342&&alltds[currentIndex+19].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=19;
        hasNext = currentIndex%19!=18&&alltds[currentIndex+1].getAttribute("chess")==turn;
    }

    return num>=5;
}


// -------------------------------------------------
function tlbrCheck(index){
    var num = 1;

var currentIndex = index;
    var hasNext = currentIndex%19!=0&&currentIndex>=19&&alltds[currentIndex-20].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=20;
        hasNext = currentIndex%19!=0&&currentIndex>=19&&alltds[currentIndex-20].getAttribute("chess")==turn;
    }
   
var currentIndex = index;
    var hasNext = currentIndex<342&& currentIndex%19!=18&&alltds[currentIndex+20].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=20;
        hasNext = currentIndex<342&& currentIndex%19!=18&&alltds[currentIndex+20].getAttribute("chess")==turn;
    }

    return num>=5;
}




function currentIndexCheck(index){
    var num = 1;

var currentIndex = index;
    var hasNext = currentIndex%19!=18&&currentIndex>=19&&alltds[currentIndex-18].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex-=18;
        hasNext = currentIndex%19!=18&&currentIndex>=19&&alltds[currentIndex-18].getAttribute("chess")==turn;
    }
   
var currentIndex = index;
    var hasNext = currentIndex<342&& currentIndex%19!=0&&alltds[currentIndex+18].getAttribute("chess")==turn;
    while(hasNext){
        num++;
        currentIndex+=18;
        hasNext = currentIndex<342&& currentIndex%19!=0&&alltds[currentIndex+18].getAttribute("chess")==turn;
    }

    return num>=5;
}
